from typing import List


class Solution:
    def checkMove(self, board: List[List[str]], rMove: int, cMove: int, color: str) -> bool:
        m, n = len(board), len(board[0])

        # 定义方向
        directions = [(-1, 0), (1, 0), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1), (1, 1)]

        for d0, d1 in directions:
            find_another = False

            i, j = rMove, cMove
            i += d0
            j += d1
            while 0 <= i < m and 0 <= j < n:
                if board[i][j] == ".":
                    break
                elif board[i][j] != color:
                    find_another = True
                else:  # board[i][j] == color
                    if find_another:
                        return True
                    else:
                        break
                i += d0
                j += d1

        return False


if __name__ == "__main__":
    # True
    print(Solution().checkMove(
        board=[[".", ".", ".", "B", ".", ".", ".", "."], [".", ".", ".", "W", ".", ".", ".", "."],
               [".", ".", ".", "W", ".", ".", ".", "."], [".", ".", ".", "W", ".", ".", ".", "."],
               ["W", "B", "B", ".", "W", "W", "W", "B"], [".", ".", ".", "B", ".", ".", ".", "."],
               [".", ".", ".", "B", ".", ".", ".", "."], [".", ".", ".", "W", ".", ".", ".", "."]],
        rMove=4, cMove=3, color="B"))

    # False
    print(Solution().checkMove(
        board=[[".", ".", ".", ".", ".", ".", ".", "."], [".", "B", ".", ".", "W", ".", ".", "."],
               [".", ".", "W", ".", ".", ".", ".", "."], [".", ".", ".", "W", "B", ".", ".", "."],
               [".", ".", ".", ".", ".", ".", ".", "."], [".", ".", ".", ".", "B", "W", ".", "."],
               [".", ".", ".", ".", ".", ".", "W", "."], [".", ".", ".", ".", ".", ".", ".", "B"]],
        rMove=4, cMove=4, color="W"))
